package com.coffee.daili.api.service;

import com.coffee.core.entity.Page;
import com.coffee.core.entity.PagerInfo;
import com.coffee.core.exception.BusinessException;
import com.coffee.daili.api.query.DailiOrderQuery;
import com.coffee.daili.api.result.*;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;


public interface DailiOrderService {

	Page<DailiOrderResult> getPager(DailiOrderQuery param, PagerInfo pr);
	
	Integer count(DailiOrderQuery param);
	
	DailiOrderResult getDetail(Integer id);
	
	List<DailiOrderResult> getList(DailiOrderQuery param, PagerInfo pr);
	
	List<DailiOrderResult> getList(DailiOrderQuery param);
	
	List<DailiOrderResult> getList();

	void delete(Integer id);

	void addOrUpdate(DailiOrderResult result)throws BusinessException;
	
	Map<Integer, DailiOrderResult> getItemMap(Set<Integer> idSet);
	
	Map<Integer, DailiOrderResult> getItemMap();

	DailiMerchantOrderResult getDailiMerchantOrderResult(Integer merchantId, String date,Integer dailiMerchantId);

	Page<DailiOrderPageResult> getDailiOrderPageResultPager(String date,Integer merchantId,Integer dailiMerchantId,PagerInfo pr);

	DailiMerchantResult getDailiMerchatResult(Integer supplierId,String date);

	Page<FenxiaoYuanList> getFenxiaoYuanList(Integer supplierId,String date,PagerInfo pr);

	Page<ShanghuListResult> getShanghuListResult(Integer supplierId,PagerInfo pr);

	Page<DailiOrderListResult> getDailiOrderListResult(Integer supplierId,String date,PagerInfo pr);

	DailiMerchantResult getDailiMerchatResultByDailiMerchantId(Integer dailiMerchantId, String date, Date startTime,Date emdTime);

	Page<FenxiaoYuanList> getFenxiaoYuanListByDailiMerchantId(Integer dailiMerchantId,String date,PagerInfo pr);

	Page<ShanghuListResult> getShanghuListResultByDailiMerchantId(Integer dailiMerchantId,PagerInfo pr);

	Page<DailiOrderListResult> getDailiOrderListResultByDailiMerchantId(Integer dailiMerchantId,String date,String status,Date startTime,Date emdTime,PagerInfo pr);

	Page<HehuorenListResult> getHehuorenListResult(String name,Integer provinceId,Integer cityId,Integer areaId,PagerInfo pr,Date startTime,Date endTime);
}
